#!/bin/bash

###
# 需求：
#  1.批量打镜像tag。 
#  2.给镜像打的新标签，用awk，以/作为分隔符，提取出倒数第一个字段。 
#  3.批量推送镜像到阿里云镜像仓库。
###

# 阿里云镜像仓库信息
ALIYUN_REGISTRY="registry.cn-beijing.aliyuncs.com/whr-ns/"
# Docker登录凭证
DOCKER_USER=""
DOCKER_PASS=""
# 镜像列表文件
IMAGES_FILE="image_list.txt"
# 登录阿里云镜像仓库
echo "Logging into Aliyun Container Registry..."
docker login --username=$DOCKER_USER --password=$DOCKER_PASS $ALIYUN_REGISTRY

# 定义函数用于打标签和推送
tag_and_push() {
    local original_image="$1"
    # 使用awk提取原镜像名的第三部分，作为新标签的一部分
    local new_tag_part=$(echo $original_image | awk -F/ '{print $(NF)}')
    local new_tag="${ALIYUN_REGISTRY}${new_tag_part}"
    echo "Tagging $original_image as $new_tag"
    docker tag "$original_image" "$new_tag"
    echo "Pushing $new_tag to Aliyun Registry..."
    docker push "$new_tag"
}

# 从文件读取镜像列表并处理
while read -r line; do
    tag_and_push "$line"
done < "$IMAGES_FILE"

echo "All images have been tagged and pushed successfully."
